﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCS_Entity.AutoQeuipment;
using WCS_Entity.Dto.AutoEquipmentDto;
using WCS_Service.DomianService.Models;

namespace WCS_Service.Interface
{
    /// <summary>
    /// 自动化设备通信服务管理接口
    /// </summary>
    public interface IAutoEquipmentOperateService : IBaseService<AutoEquipmentsEntity>
    {

        Task<bool?> CreatAutoEquipmentServiceAsync(int id,bool isManual = true);

        Task<Dictionary<int, bool>> CreatBatchAutoEquipmentServiceAsync(List<int> ids, bool isManual = true);

        Task CreatBatchAutoEquipmentNoResultAsync(List<int> ids,Func<AutoEquipmentDto,Task> addProcess, bool isManual = true);

        Task<bool> StopAutoEquipmentServiceAsync(int id);

        Task<bool> StopBatchAutoEquipmentServiceAsync(List<int> id);

        Task<List<RunAutoEquipmentInfoDto>> GetRunningAutoEquipmenServiceAsync();

        Task<List<ManageAgvModel>> GetAgvInfoAsync();
    }
}
